package DAO;

import java.util.List;

import com.sel.modelo.Equipamento;

import android.content.ContentValues;
import android.content.Context;

/**
 * 08-05-2015.
 * @version 1.2
 * @author Jannsen Brauer
 */
public class EquipamentoDAO extends DAOGeneric<Equipamento>{


    public static final String    TABELA = "equipamento";
    public static final String[] COLUNAS = {"idequipamento", "descricao", "quantidade", "campi"};

    public static final String SCRIPT_CRIACAO_TABELA_EQUIPAMENTO = "CREATE TABLE equipamento( " +
                                                                    COLUNAS[0]+" INTEGER PRIMARY KEY," +
                                                                    COLUNAS[1]+" TEXT," +
                                                                    COLUNAS[2]+" INTEGER, " +
                                                                    COLUNAS[3]+" INTEGER" +
                                                                    ");";
    
    public static final String SCRIPT_DELECAO_TABELA_EQUIPAMENTO = "DROP TABLE IF EXISTS "+TABELA;
    
    public static EquipamentoDAO instance;
        
    public static EquipamentoDAO getInstance(Context context) 
    {
        if(instance == null)
        {
            instance = new EquipamentoDAO(context);
        }
        return instance;
    }

    public EquipamentoDAO(Context context) 
    {
        super(context);
    }
    
    @Override
    public String getNomeColunaPrimaryKey() 
    {
        return COLUNAS[0];
    }

    @Override
    public String getNomeTabela() 
    {
        return TABELA;
    }

    @Override
    public ContentValues entidadeParacontentValues(Equipamento equipamento) 
    {
        ContentValues values = new ContentValues();
        if (equipamento.getId()> 0)
        {
            values.put(COLUNAS[0], equipamento.getId());
        }
        values.put(COLUNAS[1], equipamento.getDescricao());
        values.put(COLUNAS[2], equipamento.getQuantidade());
        values.put(COLUNAS[3], equipamento.getCampi());
        return values;
    }

    @Override
    public Equipamento contentValuesParaEntidade(ContentValues contentValues) 
    {
        Equipamento equipamento = new Equipamento();
        equipamento.setId(contentValues.getAsInteger(COLUNAS[0]));
        equipamento.setDescricao(contentValues.getAsString(COLUNAS[1]));
        equipamento.setQuantidade(contentValues.getAsInteger(COLUNAS[2]));
        equipamento.setCampi(contentValues.getAsInteger(COLUNAS[3]));
        return equipamento;
    }

    public List<Equipamento> buscaEquipamentosPorCampi(int idcampi) 
    {
        String query = "SELECT * " +
                         "FROM equipamento " +
                        "WHERE campi = "+idcampi;
        List<Equipamento> resultado = this.recuperarPorQuery(query);
        return resultado;
    }

	public String buscaNomeDoEquipamentoPorId(int idEquipamento) 
	{
		String nomeEquipamento = "";
		String query = "SELECT * " +
		                "FROM equipamento " +
		                "WHERE idequipamento = "+idEquipamento;
		List<Equipamento> resultado = this.recuperarPorQuery(query);
		for (Equipamento equipamento : resultado) 
		{
			nomeEquipamento = equipamento.getDescricao();
		}
		return nomeEquipamento;
	}
}
